package com.ktgj.flight.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.ktgj.common.core.annotation.Excel;
import com.ktgj.pay.api.domain.InvoiceInvoiceOrder;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 订单详情
 */
public class OrderDetails implements Serializable {
    public OrderDetails() {
        this.flightOrderDetails = new ArrayList<>();
        this.flightOrderAssists = new ArrayList<>();
        this.changeOrderDetails = new ArrayList<>();
    }
    /** PNR */
    @Excel(name = "PNR")
    private String pnr;

    /** 订单PNR状态 */
    @Excel(name = "订单PNR状态")
    private String pnrstatus;

    /** 订单收银状态Id --1未支付 2 已支付 */
    @Excel(name = "订单收银状态Id --1未支付 2 已支付")
    private String guestPymtStsId;

    /** 订单状态 */
    @Excel(name = "订单状态")
    private String status;

    /** 0单程,1假往返,2真往返,3中转，4假中转 */
    @Excel(name = "0单程,1假往返,2真往返,3中转，4假中转")
    private String tripType;

    /** 支付总金额 */
    @Excel(name = "支付总金额")
    private BigDecimal payAmount;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    /** 付款方式 */
    @Excel(name = "付款方式")
    private String payType;

    /**
     * 出港城市
     */
    private String departure;

    /**
     * 到港城市
     */
    private String arrival;

    /** 积分 */
    @Excel(name = "积分")
    private BigDecimal points;

    /** 预留款 */
    @Excel(name = "预留款")
    private BigDecimal depositAmount;

    /** 机票订单详情 */
    @Excel(name = "机票订单详情")
    private List<FlightOrderDetails> flightOrderDetails;

    /** 机票辅营产品 */
    @Excel(name = "机票辅营产品")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private List<FlightOrderAssist> flightOrderAssists;

    /** 机票改签信息 */
    @Excel(name = "机票改签信息")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private List<FlightChangeOrderDetails> changeOrderDetails;

    /**
     * 报销凭证
     */
    private String voucher;

    /**
     * 报销凭证状态
     */
    private String voucherStatus;

    /**
     * 取票地址
     */
    private String takeTicketAddress;

    public String getPnr() {
        return pnr;
    }

    public void setPnr(String pnr) {
        this.pnr = pnr;
    }

    public String getPnrstatus() {
        return pnrstatus;
    }

    public void setPnrstatus(String pnrstatus) {
        this.pnrstatus = pnrstatus;
    }

    public String getGuestPymtStsId() {
        return guestPymtStsId;
    }

    public void setGuestPymtStsId(String guestPymtStsId) {
        this.guestPymtStsId = guestPymtStsId;
    }

    public String getTripType() {
        return tripType;
    }

    public void setTripType(String tripType) {
        this.tripType = tripType;
    }

    public BigDecimal getPayAmount() {
        return payAmount;
    }

    public void setPayAmount(BigDecimal payAmount) {
        this.payAmount = payAmount;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getPayType() {
        return payType;
    }

    public void setPayType(String payType) {
        this.payType = payType;
    }

    public List<FlightOrderDetails> getFlightOrderDetails() {
        return flightOrderDetails;
    }

    public void setFlightOrderDetails(List<FlightOrderDetails> flightOrderDetails) {
        this.flightOrderDetails = flightOrderDetails;
    }

    public String getDeparture() {
        return departure;
    }

    public void setDeparture(String departure) {
        this.departure = departure;
    }

    public String getArrival() {
        return arrival;
    }

    public void setArrival(String arrival) {
        this.arrival = arrival;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public List<FlightOrderAssist> getFlightOrderAssists() {
        return flightOrderAssists;
    }

    public List<FlightChangeOrderDetails> getChangeOrderDetails() {
        return changeOrderDetails;
    }

    public String getVoucher() {
        return voucher;
    }

    public void setVoucher(String voucher) {
        this.voucher = voucher;
    }

    public String getVoucherStatus() {
        return voucherStatus;
    }

    public void setVoucherStatus(String voucherStatus) {
        this.voucherStatus = voucherStatus;
    }

    public String getTakeTicketAddress() {
        return takeTicketAddress;
    }

    public void setTakeTicketAddress(String takeTicketAddress) {
        this.takeTicketAddress = takeTicketAddress;
    }

    public BigDecimal getPoints() {
        return points;
    }

    public void setPoints(BigDecimal points) {
        this.points = points;
    }

    public BigDecimal getDepositAmount() {
        return depositAmount;
    }

    public void setDepositAmount(BigDecimal depositAmount) {
        this.depositAmount = depositAmount;
    }
}
